/**
 * UserService.java
 * Product:BaseLayer
 * Version:1.0
 * Copyright 2009 by DNE
 * All Rights Reserved.
 */
package com.site.service.backend.system;

/**
 * 
 */
import java.util.List;

import com.site.dto.backend.system.UsersBizBean;
import com.site.util.base.service.BaseService;
import com.site.util.extremetable.QueryPage;

/**
 * 用户管理 Service
 * 
 * @author
 * 
 */
public interface UsersService extends BaseService{

	/**
	 * 查询所有用户
	 * 
	 * @return
	 */
	public List<UsersBizBean> getUserList();

	/**
	 * 分页查询系统用户
	 * @param queryPage
	 * @return
	 */
	public List<UsersBizBean> getUserList(QueryPage queryPage);
	
	/**
	 * 查询 非 该部门用户
	 * 
	 * 
	 * @return
	 */
	public List<UsersBizBean> getNotDeptUserList(Integer deptId, UsersBizBean userBizBean, QueryPage queryPage);
	/**
	 * 查询 非 该角色用户
	 * @return
	 */
	public List<UsersBizBean> getNotRoleUserList(Long roleId, UsersBizBean userBizBean, QueryPage queryPage);
	
	/**
	 * 通过名称获取用户
	 * @param userName
	 * @return
	 */
	public UsersBizBean getUserByName(String userName);
	/**
	 * 通过名称获取用户
	 * @param userName
	 * @return
	 */
	public List<UsersBizBean> getUserList(UsersBizBean userBizBean,QueryPage queryPage);
	/**
	 * 通过ID获取用户
	 * @param userName
	 * @return
	 */
	public UsersBizBean getUserById(Long userId);
	
	/**
	 * 登陆后，登陆次数加一
	 */

	public void addLoginCount(UsersBizBean user);
	
	/**
	 * 通过用户ID查询是否有已存在相同用户名且已启用的用户
	 */
	public UsersBizBean checkTheSameUserStart(Integer userId);
	
	/**
	 * 通过名称获取用户(不区分大小写)
	 * @param userName
	 * @return
	 */
	public UsersBizBean getUserByNameLower(String userName);
	/**
	 * 查询用户所属部门
	 */
	public List<UsersBizBean> getUserDepartMent(Integer userId, QueryPage queryPage);
	
	/**
	 * 查询用户所属角色
	 */
	public List<UsersBizBean> getUserRole(Integer userId, QueryPage queryPage);
	
	/**
	 * 根据ID查询用户 sql
	 * @param userId 用户ID
	 * @return
	 */
	public UsersBizBean getUserByIdSql(Integer userId);
	
	/**
	 * 查询用户 sql
	 * @param userId 用户ID
	 * @return
	 */
	public UsersBizBean getUserBySql(UsersBizBean userBizBean);
	/**
	 * 根据用户名，查询用户实体
	 * @param userName
	 * @return
	 */
	public UsersBizBean loadUserByUsername(String userName);
}
